﻿/* Copyright © 2012 Gargol, Gargol at gbot dot org
   Based on CoreDC Copyright 2007 © Johan Pettersson, Fredrik Johansson, Michael Starberg, Christian Epstein.
 
This file is part of ADCCore.

ADCCore is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.

ADCCore is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with ADCCore.  If not, see <http://www.gnu.org/licenses/>. */
using System;
using System.Collections.Generic;

namespace ADCCore.Classes
{
    public sealed class HubInfo
    {
        public HubInfo()
        {
            this.HubSupports = new List<string>();
            this.Hubname = String.Empty;
            this.Topic = String.Empty;
            this.HubVersion = String.Empty;
            this.Info = String.Empty;
            this.LastMessage = String.Empty;
            this.Tag = new Object();
        }

        /// <summary>
        /// Gets or sets the extended protocol functions (outside the original dc protocol) the hub supports
        /// </summary>
        /// <value>List of supported extended features</value>
        public List<string> HubSupports { get; set; }

        /// <summary>
        /// Gets or sets the hubs name
        /// </summary>
        /// <value>The hubname</value>
        public string Hubname { get; set; }

        /// <summary>
        /// Gets or sets the current topic set in the hub if supported
        /// </summary>
        /// <value>The topic</value>
        public string Topic { get; set; }

        /// <summary>
        /// Gets or sets the version of the hubsoftware the hub is running on
        /// </summary>
        /// <value>The hub version</value>
        public string HubVersion { get; set; }

        /// <summary>
        /// Gets or sets the hubs HubInfo
        /// </summary>
        /// <value>The HubInfo</value>
        public string Info { get; set; }

        /// <summary>
        /// Gets or sets the last protocol message recieved from the hub
        /// </summary>
        /// <value>The last raw protocol message recieved</value>
        public string LastMessage { get; set; }

        /// <summary>
        /// Gets or sets the object that contains data about the hub
        /// </summary>
        /// <value>The data</value>
        public Object Tag { get; set; }

    }
}
